1
Ridefinire l'OO per la programmazione a livello di sistema
AI034Lesson 17
00:00

Ridefinire l'OO in Rust implica passare da gerarchie di classi rigide verso un modello focalizzato sulla separazione tra dati e comportamento. Mentre i linguaggi tradizionali per sistemi si basano su alberi oggetti complessi, Rust soddisfa gli obiettivi del design OO — incapsulamento e polimorfismo — utilizzando trait e moduli per privilegiare la sicurezza della memoria senza sovraccarichi a tempo di esecuzione.

1. Mettere in discussione la gerarchia

Rust evita esplicitamente l'ereditarietà di implementazione per prevenire il problema del base fragile problema. Invece, favorisce la composizione e trait per definire comportamenti condivisi tra tipi diversi. Un "oggetto" qui è una combinazione di dati (struct) e procedure (blocco impl), verificata a tempo di compilazione.

Classe baseGerarchia tradizionaleTrait (comportamento)Composizione in Rust"I programmi orientati agli oggetti sono composti daoggetti. Un oggetto incapsula sia i dati chele procedure che operano su quei dati."— GoF, pagina 491

2. Concurrencia e stato come tipo

Rust gestisce la concorrenza principalmente tramite la libreria standard (Send/Sync trait) piuttosto che il nucleo del linguaggio. Per massimizzare la sicurezza, l'algoritmo Algoritmo Stato come Tipo codifica stati distinti in tipi diversi. Le transizioni restituiscono nuove istanze, spostando la logica dagli statement a tempo di esecuzione if agli statement a tempo di compilazione.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>